﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DAO;

namespace WEB.Restrito.Pesquisar
{
    public partial class frmPessoa : PaginaBase
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                if (!Page.IsPostBack)
                {
                    Header.Title = "Pessoa - Pesquisar";

                    PapelDAO.Listar(ddlPapel, UsuarioLogado.eventoID);
                    ddlPapel.Items.FindByText("- -").Text = "Todos";

                    pesquisar();

                    mtv.SetActiveView(viewListagem);
                }
            }

            catch
            {
                Response.Redirect("~\\Login\\Login.aspx");
            }
        }

        #region Funções
        public void pesquisar()
        {
            try
            {
                int id = 0;
                int papelID = 0;

                if (!string.IsNullOrEmpty(txtPesquisarID.Text.Trim()))
                    id = int.Parse(lblPesquisarID.Text);

                if (ddlPapel.SelectedIndex != 0)
                    papelID = int.Parse(ddlPapel.SelectedValue);

                var listagem = PessoaDAO.Listar(UsuarioLogado.eventoID, papelID, id, txtPesquisarDescricao.Text.Trim());


                if (listagem.Count == 1)
                    lblNumeroLinhas.Text = "Foi encontrado " + listagem.Count + " registro.";
                else if (listagem.Count > 1)
                    lblNumeroLinhas.Text = "Foram encontrados " + listagem.Count + " registros.";
                else
                    lblNumeroLinhas.Text = "";


                var objs = (from a in listagem
                            select new
                            {
                                ID = a.ID,
                                nomeCompleto = a.nomeCompleto,
                                Papel = a.Papel.descricao
                            }).ToList();

                mtv.SetActiveView(viewListagem);

                gvListagem.DataSource = objs;
                gvListagem.DataBind();
            }
            catch (Exception ex)
            {
                lblErro.Text = ex.Message;
            }
        }
        #endregion

        #region Eventos do formulario

        #region Grids
        protected void gvListagem_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            try
            {
                if (e.Row.RowType == DataControlRowType.DataRow)
                {
                    //Linha 0
                    //e.Row.Cells[0].Width = Unit.Pixel(60);
                }
            }

            catch (Exception exc)
            {
                lblErro.Text = exc.Message.ToString();

            }
        }
        protected void gvListagem_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            lblErro.Text = string.Empty;
            lblSucesso.Text = string.Empty;

            if (e.CommandName.Contains("cmdVisualizar"))
            {
                int id = Convert.ToInt32(e.CommandArgument);
                Response.Redirect("../Visualizar/frmPessoa.aspx?ID=" + id.ToString());
            }

            if (e.CommandName.Contains("cmdEditar"))
            {
                int id = Convert.ToInt32(e.CommandArgument);
                Response.Redirect("../Editar/frmPessoa.aspx?ID=" + id.ToString());
            }


            if (e.CommandName.Contains("cmdDeletar"))
            {
                int id = Convert.ToInt32(e.CommandArgument);

                Response.Redirect("../Deletar/frmPessoa.aspx?ID=" + id.ToString());
            }

        }
        protected void gvListagem_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            gvListagem.PageIndex = e.NewPageIndex;
            pesquisar();
        }
        protected void gvListagem_RowCreated(object sender, GridViewRowEventArgs e)
        {
            // only apply changes if its DataRow
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                // when mouse is over the row, save original color to new attribute, and change it to highlight yellow color
                e.Row.Attributes.Add("onmouseover", "this.originalstyle=this.style.backgroundColor;this.style.backgroundColor='#BDD9F6'");
                // when mouse leaves the row, change the bg color to its original value   
                e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=this.originalstyle;");
            }


            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                Permissao permissao = PermissaoDAO.Selecionar(UsuarioLogado.eventoID, UsuarioLogado.papelID, "Pessoa");
                //string Clientscript = "javascript:alert('Seu usuário não possui permissão para executar esta operação.');";

                if (permissao.visualizar.Contains("N"))
                {
                    //e.Row.Cells[2].Attributes.Add("Onclick", Clientscript);
                    e.Row.Cells[2].Text = "";
                }

                if (permissao.editar.Contains("N"))
                {
                    //e.Row.Cells[3].Attributes.Add("Onclick", Clientscript);
                    e.Row.Cells[3].Text = "";
                }

                if (permissao.deletar.Contains("N"))
                {
                    e.Row.Cells[4].Text = "";
                }


            }
        }
        #endregion

        #region Botões
        protected void btnPesquisar_Click(object sender, EventArgs e)
        {
            pesquisar();
        }
        #endregion

        #endregion
    }
}